home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
gnu
/
button12.lha
/
button9101.ps
< prev
next >
Wrap
Text File
|
1993-08-05
|
6KB
|
214 lines
%
% button9101.ps - A GNU Button Program
%
% Copyright 1991 Free Software Foundation
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 1, or (at your option)
% any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%
% Hard copies of this button were first distributed at the January 1991
% Dallas Usenix. They had black lettering on a yellow background on a
% standard 2 1/4" safety pin button. They were designed by Leonard H.
% Tower Jr. who is also the author of this GNU Button Program.
%
% Report bugs or improvements to: tower@prep.ai.mit.edu
%
% Hard copies of this button are probably still available. To get a
% button, one must have either donated source code or documentation to
% the GNU Project or make a donation of at least $ 2.00 for each button.
%
% If you wish a hard copy of a gnu button send:
% - a self-addressed, stamped envelope; and
% - either:
% - a reminder of your source or documentation contribution; or
% - a donation payable to the "Free Software Foundation"; and
% - specify which of these different versions you wish:
% Feb 88, Jun 88, Jan 89, Jun 89, Jan 90, Jun 90, and/or Jan 91
% to: L. Tower Jr.
% 36 Porter Street,
% Somerville, MA 02143, USA
%
% This program is available for anonymous ftp
% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available
% in other source archives.
%.so ehandler.ps
% Uses pathtext routine from Adobe Cookbook.
.so pathtext.ps
% center button on 8 1/2" x 11" page
306 396 translate
% This is a kludge to give better edge resolution.
% Note that postscript's scale command doesn't cut it.
% It scales after the edges are set.
% biggg is set to 2,3,4 or 3.9 to make a master that is that much larger.
% The master is reduced that much by the button manufacturer.
% If only 1200 dpi postscript printers were more common ...
/biggg 1 def
% useful for centering things
/circleguide {
gsave
/radius 82 biggg mul def
.5 setlinewidth
newpath
0 0 radius 0 360 arc
stroke
grestore
} def
%circleguide
/setdimen {
/letsep exch biggg mul def % half the width of a letter
/letrad exch biggg mul def
/letinside 18 biggg mul def % vertical distance from center line to radius
/letheightlow letrad letinside add def
/letheight letheightlow linewidth 2 div add def
/letwidth letrad 2 mul def
} def
/g_path {
newpath
gxcenter letinside letrad 0 180 arc
gxcenter letinside neg letrad 180 0 arc
0 letinside 3 div rlineto
13.7 neg biggg mul 0 rlineto
} def
/u_path {
newpath
/nxcenter gxcenter neg def
/nleft nxcenter letrad neg add def
/nright nxcenter letrad add def
nleft letheight moveto
nxcenter letinside neg letrad 180 0 arc
nright letheight lineto
} def
/center_dim { 16 16 setdimen } def
/outside_dim { 15.5 16.5 setdimen } def
/inside_dim { 16.5 15.5 setdimen } def
gsave
% define the basic dimensions of the letters
% people are welcome to call this typeface: austere gothic
/linewidth 11 biggg mul def
/Helvetica-Narrow-Bold findfont 6 biggg mul scalefont setfont
linewidth setlinewidth
0 setlinejoin
0 setlinecap
% give us a G !
0 setgray
center_dim
/gxcenter letrad 2 mul letsep add neg def
g_path
stroke
1 setgray
outside_dim
g_path
( 675 MASSACHUSETTS AVE, CAMBRIDGE, MA 02139 USA)
0 pathtext
inside_dim
g_path
reversepath
(THANXGNU!! COPYRIGHT 1991 FREE SOFTWARE FOUNDATION)
0 pathtext
% give us a N !
0 setgray
center_dim
newpath
letrad neg letheight neg moveto
letrad neg letheightlow lineto
letrad letheightlow neg lineto
letrad letheight lineto
stroke
1 setgray
newpath
/bla .5 biggg mul def % amount to move baseline by
/nadj bla 1.2 mul biggg mul def % amount to adjust diagonal of the n
letrad bla add neg letheight neg moveto
letrad bla add neg letheightlow nadj add lineto
letrad bla sub letheightlow nadj sub neg lineto
letrad bla sub letheight lineto
% This is a kludge to make the slashes bolder
/slashwidthadj (/) stringwidth pop % don't need y
4.1 div def
gsave
( FROM PREP.AI.MIT.EDU FILE /)
0 pathtext
grestore
gsave
(/pub/)
( FROM PREP.AI.MIT.EDU FILE /) stringwidth pop % don't need y
slashwidthadj 3.4 mul sub
pathtext
grestore
gsave
(/gnu/)
( FROM PREP.AI.MIT.EDU FILE /pub/) stringwidth pop % don't need y
slashwidthadj 4.2 mul sub
pathtext
grestore
gsave
% extra space is to turn the tight bend in the N.
(/button.N.MM.shar. GNU'S NOT UNIX!)
( FROM PREP.AI.MIT.EDU FILE /pub/gnu/) stringwidth pop % don't need y
slashwidthadj 5.2 mul sub
pathtext
grestore
newpath
letrad bla sub neg letheight neg moveto
letrad bla sub neg letheightlow nadj sub lineto
letrad bla add letheightlow nadj add neg lineto
letrad bla add letheight lineto
reversepath
% extra space is to turn the tight bend in the N.
( YOU MAY ANONYMOUS FTP THIS BUTTON'S POSTSCRIPT PROGRAM)
0 pathtext
% give us a U !
0 setgray
center_dim
/gxcenter letrad 2 mul letsep add neg def
u_path
stroke
1 setgray
outside_dim
u_path
( UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE.)
0 pathtext
inside_dim
u_path
reversepath
( THIS GNU BUTTON DESIGN MAY BE FREELY REDISTRIBUTED)
0 pathtext
% what does it spell?!? GNU !!
grestore
showpage